<?php
/**
 * 用户操作
 * 
 * ============================================================================
 * 版权所有: (c) 2009-2011，<UEShop Inc>，并保留所有权利。
 * 网站地址: http://www.ueshop.cn
 * ----------------------------------------------------------------------------
 * 这不是一个自由软件！您只能在不用于商业目的的前提下对程序代码进行修改和使用；
 * 不允许对程序代码以任何形式任何目的的再发布。
 * ============================================================================
 *
 * @author      cmpan
 * @copyright   Copyright (c) 2009-2010 UEShop Inc. (http://www.ueshop.cn)
 * @license     http://www.ueshop.cn/1_0.txt
 */
class AccountController extends UE_Controller_Action {
	/**
	 * UserModel
	 *
	 * @var UserModel
	 */
	private $_user;
	public function init() {
		UE_Loader::loadModel('UserModel', 'user');
		$this->_user = new UserModel();
	}
	
	/**
	 * 用户注册
	 *
	 */
	public function registerAction() {
	    
	}
	
	/**
	 * 取回密码
	 *
	 */
	public function getPwAction() {
	    
	}	
	
	/**
	 * 登录
	 *
	 */
	public function loginAction() {		
		$referer = UE::referer();
		// 用户已登录, 如果没有来源页面则返回首页，否则返回来源页
		if ($this->_user->hasLogin()) {
			
			if (empty($referer) || $referer == UE::url()) {
				$referer = UE::context();
			}
			
			header('Location: ' . $referer);
			
			return;
		}
		
		//print_r($_SESSION);
		$isUseCaptcha = OptionModel::getOption('USE_LOGIN_CAPTCHA');
		if (IS_POST) {
			// 验证码						
			if($isUseCaptcha && !UE_Captcha::check(@$_POST['secode'], 'userLogin')) {
				$this->tpl->setErr('验证码错误。');				
			} else {
				if($this->_user->login($_POST['account'], $_POST['password'])){
					// 登录成功,跳转
					if (!empty($_POST['forward'])) {
						header('Location: ' . urldecode($_POST['forward']));
						return;
					}
					if (!empty($_GET['id'])) {
						header('Location: ' . urldecode($_GET['id']));
						return;
					}
					
					/*
					if($_SESSION['user_type'] == 'admin' || $_SESSION['user_type'] == 'super') {
						header('Location: ' . UE_Url::make('system/admin/index'));
						return;
					}
					*/
					if ($referer != UE::url()) {
						header('Location: ' . UE::referer());
					} else {
						header('Location: ' . UE::context());
					}
					
					return;

				} else {
					$this->tpl->setErr($this->_user->getErrs());
				}
			}
		}
		
		$this->tpl->assign('isUseCaptcha', $isUseCaptcha);
	    $this->tpl->apply('user/account.login');
	}
	
	/**
	 * 注销
	 *
	 */
	public function logoutAction() {
		$this->_user->logout();
		if (!empty($_GET['id'])) {
			header('Location: ' . urldecode($_GET['id']));
		} else {
			header('Location: ' . UE::referer());
		}
	}
}